#pragma once

#include "DXAMLCommon.h"


struct XamlToken
{
public: 
	XamlToken(const enum XamlTypeInfoProviderKind & inKind, const XUINT32 & inHandle);
	XamlToken();
	XBOOL IsEmpty();
	void Reset();
	HRESULT SetFromInt32(XUINT32 inData);
	enum XamlTypeInfoProviderKind GetProviderKind();
	void SetProviderKind(enum XamlTypeInfoProviderKind inProviderKind);
	enum XamlFactoryKind GetRuntimeKind();
	void SetRuntimeKind(enum XamlFactoryKind inKind);
	XUINT32 GetHandle();
	void SetHandle(XUINT32 inHandle);
private: 
	const XUINT32 HANDLE_MASK;
	const XINT32 HANDLE_BIT_WIDTH;
	XUINT32 m_Data;
};


